package com.dji.sdk.sample.demo.flightcontroller; import android.content.Context; import android.support.annotation.NonNull; import com.dji.sdk.sample.R; import com.dji.sdk.sample.internal.controller.DJISampleApplication; import com.dji.sdk.sample.internal.utils.ModuleVerificationUtil; import com.dji.sdk.sample.internal.utils.ToastUtils; import com.dji.sdk.sample.internal.view.BaseThreeBtnView; import dji.common.error.DJIError; import dji.common.flightcontroller.FlightControllerState; import dji.common.flightcontroller.FlightOrientationMode; import dji.common.util.CommonCallbacks; import dji.sdk.flightcontroller.FlightController; /** * Class for Orientation mode. */ public class OrientationModeView extends BaseThreeBtnView { private FlightController flightController; private String orientationMode; public OrientationModeView(Context context) { super(context); } @Override protected void onAttachedToWindow() { super.onAttachedToWindow(); if (ModuleVerificationUtil.isFlightControllerAvailable()) { flightController = DJISampleApplication.getAircraftInstance().getFlightController(); flightController.setStateCallback(new FlightControllerState.Callback() { @Override public void onUpdate(@NonNull FlightControllerState flightControllerState) { orientationMode = flightControllerState.getOrientationMode().name(); changeDescription("Current Orientation Mode is" + "\n" + orientationMode); } }); } } @Override protected int getMiddleBtnTextResourceId() { return R.string.orientation_mode_home_lock; } @Override protected int getLeftBtnTextResourceId() { return R.string.orientation_mode_course_lock; } @Override protected int getRightBtnTextResourceId() { return R.string.orientation_mode_aircraft_heading; } @Override protected int getDescriptionResourceId() { return R.string.orientation_mode_description; } @Override protected void handleMiddleBtnClick() { if (ModuleVerificationUtil.isFlightControllerAvailable()) { flightController = DJISampleApplication.getAircraftInstance().getFlightController(); flightController.setFlightOrientationMode(FlightOrientationMode.HOME_LOCK, new CommonCallbacks.CompletionCallback() { @Override public void onResult(DJIError djiError) { ToastUtils.setResultToToast("Result: " + (djiError == null ? "Success" : djiError.getDescription())); } }); } } @Override protected void handleLeftBtnClick() { if (ModuleVerificationUtil.isFlightControllerAvailable()) { flightController = DJISampleApplication.getAircraftInstance().getFlightController(); flightController.setFlightOrientationMode(FlightOrientationMode.COURSE_LOCK, new CommonCallbacks.CompletionCallback() { @Override public void onResult(DJIError djiError) { ToastUtils.setResultToToast("Result: " + (djiError == null ? "Success" : djiError.getDescription())); } }); } } @Override protected void handleRightBtnClick() { if (ModuleVerificationUtil.isFlightControllerAvailable()) { flightController = DJISampleApplication.getAircraftInstance().getFlightController(); flightController.setFlightOrientationMode(FlightOrientationMode.AIRCRAFT_HEADING, new CommonCallbacks.CompletionCallback() { @Override public void onResult(DJIError djiError) { ToastUtils.setResultToToast("Result: " + (djiError == null ? "Success" : djiError.getDescription())); } }); } } @Override public int getDescription() { return R.string.flight_controller_listview_orientation_mode; } }